﻿//#include<stdio.h>
//int main()
//{
//	printf("hello world!");
//	return 0;
//}

//#include<iostream>
//
//using namespace std;
//
//int main()
//{
//	cout << "hello world!" << endl;
//	return 0;
//}

#include<stdio.h>
#include<stdlib.h>

//namespace baka
//{
//	int rand = 9;
//	int Add(int x, int y)
//	{
//		return x + y;
//	}
//
//	struct node
//	{
//		int val;
//		struct node* next;
//	};
//}
//
//int main()
//{
//	//默认访问的是全局变量的rand函数指针
//	printf("%p\n", rand);
//	printf("%d\n", baka::rand);
//	return 0;
//}

//namespace baka
//{
//	int x = 9;
//}
//
//using namespace baka;
//
//int main()
//{
//	printf("%d\n", x);
//	return 0;
//}


//
//void Print(int x, int y = 1);
//
//int main()
//{
//	int a = 10;
//	Print(a);
//	return 0;
//}
//
//void Print(int x, int y)
//{
//	cout << x << endl;
//	cout << y << endl;
//}




//void Sub(int x, int y)
//{
//	cout << "Sub(int x,int y)" << endl;
//}



//int& Sum(int& a, int& b)
//{
//	int c = a + b;
//	return c;
//}
//
//int main()
//{
//	int x = 1;
//	int y = 2;
//	cout << Sum(x, y) << endl;
//	Sum(x, y) = 4;
//	cout << Sum(x, y) << endl;
//
//	return 0;
//}




//typedef int STDataType;
//
//typedef struct Stack
//{
//	STDataType* a;
//	int top;
//	int capacity;
//}ST;
//
//void STInit(ST& rs, int n = 4)
//{
//	rs.a = (STDataType*)malloc(n * sizeof(STDataType));
//	rs.top = 0;
//	rs.capacity = n;
//}
//
//void STPush(ST& rs, STDataType x)
//{
//	assert(rs.a);
//	//扩容
//	if (rs.top == rs.capacity)
//	{
//		printf("\n");
//		int newcapacity = rs.capacity == 0 ? 4 : rs.capacity * 2;
//		STDataType* tmp = (STDataType*)realloc(rs.a, newcapacity *
//			sizeof(STDataType));
//		if (tmp == NULL)
//		{
//			perror("realloc fail");
//			return;
//		}
//		rs.a = tmp;
//		rs.capacity = newcapacity;
//	}
//	rs.a[rs.top] = x;
//	rs.top++;
//}
//// int STTop(ST& rs)
//int& STTop(ST& rs)
//{
//	assert(rs.top > 0);
//	return rs.a[rs.top-1];
//}
//int main()
//{
//	// 调⽤全局的
//	ST st1;
//	STInit(st1);
//	STPush(st1, 1);
//	STPush(st1, 2);
//	cout << STTop(st1) << endl;
//	//返回值是栈顶元素的别名	
//	STTop(st1) += 10;
//	cout << STTop(st1) << endl;
//	return 0;
//}


//
//int main()
//{
//	double a = 3.14;
//	const int& ra = a;
//
//	const int& b = 30;
//	return 0;
//}

//#ifndef NULL
//	#ifdef __cplusplus
//		#define NULL 0 
//	#else
//		#define NULL ((void*)0)
//	#endif
//#endif

#include<iostream>
using namespace std;

void func(int x)
{
	cout << "func(int x)" << endl;
}

void func(int* ptr)
{
	cout << "func()" << endl;
}

int main()
{
	func(nullptr);
	return 0;
}